<!DOCTYPE doctype PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">

<HTML>
  <HEAD>
    <META name="generator" content=
    "HTML Tidy for Java (vers. 2009-12-01), see jtidy.sourceforge.net">

    <TITLE>Debugger: Memory (Dynamic Bytes)</TITLE>
    <META http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <LINK rel="stylesheet" type="text/css" href="help/shared/DefaultStyle.css">
  </HEAD>

  <BODY lang="EN-US">
    <H1><A name="plugin"></A>Debugger: Memory (Dynamic Bytes)</H1>

    <DIV class="image">
      <IMG alt="" src="images/DebuggerMemoryBytesPlugin.png">
    </DIV>

    <P><A name="Toggle_Header"></A>The memory, or dynamic bytes, window is analogous to Ghidra's
    bytes window for static analysis, but in the dynamic context. It displays memory contents from
    a target. More precisely, it displays recorded memory contents in a trace. In most use cases,
    that trace is "at the present," meaning it is the most recent memory from a live target.
    Multiple memory windows can be displayed simultaneously, using the same pattern as many other
    Ghidra windows. The "primary" window is always displayed and generally tracks with the rest of
    the tool. Any window can be "snapshotted," i.e., cloned. This is where memory windows differ
    from static bytes windows. Static clones remain in place; they do not automatically navigate.
    Dynamic clones can still be configured to navigate, following the rest of the tool. A common
    use is to configure a clone to follow the stack pointer. Still, you can disable a window's
    automatic navigation, so it behaves like a true clone. A current limitation is that you cannot
    use clones to display different points in time for the same trace.</P>

    <P>Because not all memory is recorded, some background coloring is used to indicate the state
    of attempted memory reads. Regardless of state, the most-recent contents recorded in the trace
    are displayed in the window, defaulting to 00. "Stale" memory, that is ranges of memory which
    have not been read at the current time, are displayed with a darker background. Where that
    memory is marked "read-only" and has been successfully read previously, that coloring is
    subdued, since the contents are not likely to have changed. Where a read was attempted but
    failed, the entire range is displayed with a pink background. Otherwise, up-to-date contents
    are displayed with the default background color.</P>

    <P>The dynamic bytes viewer supports editing memory. See <A href=
    "help/topics/DebuggerControlPlugin/DebuggerControlPlugin.html">Control and Machine State</A>.
    Such edits are performed as usual: Toggling edits and typing into the editor, or by pasting
    byte strings. These edits may be directed toward a live target, the trace, or the emulator.
    <B>NOTE:</B> Please be wary of hand-typing large edits into the emulator, since every keystroke
    may produce a unique scratch snapshot. It is better to paste such edits instead.</P>

    <H2>Actions</H2>

    <P>The memory window provides a variety of actions, some for managing and configuring windows,
    and others for capturing memory from a target.</P>

    <H3><A name="new_memory"></A>New Memory View</H3>

    <P>This action is always available in the <SPAN class="menu">Window &rarr; Debugger</SPAN>
    menu. It creates a new memory window with the same configuration as the primary memory window.
    It is equivalent to cloning the primary memory window.</P>

    <H3><A name="follows_thread"></A>Follows Selected Thread</H3>

    <P>This action is only available on cloned memory windows. The primary window always follows
    the tool's current thread. Disabling this toggle causes the clone to remain on its own current
    thread rather than following the tool's. The current thread is used when computing a location
    to navigate to automatically. It is only applicable when "Track Location" is set to something
    other than "Do Not Track."</P>

    <H3><A name="track_location"></A>Track Location</H3>

    <P>This action is equivalent to the <A href=
    "help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html#track_location">same action</A>
    in the Dynamic Listing window. <B>NOTE:</B> This feature is disabled when the edit toggle is
    on.</P>

    <H3><A name="go_to"></A>Go To (G)</H3>

    <P>This action is equivalent to the <A href=
    "help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html#go_to">same action</A> in the
    Dynamic Listing window.</P>

    <DIV class="image">
      <IMG alt="" src="help/topics/DebuggerListingPlugin/images/DebuggerGoToDialog.png">
    </DIV>

    <H3><A name="read_memory"></A>Read Memory</H3>

    <P>This action is equivalent to the <A href=
    "help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html#read_memory">same action</A> in
    the Dynamic Listing window.</P>

    <H3><A name="auto_memory"></A>Auto-Read Memory</H3>

    <P>This action is equivalent to the <A href=
    "help/topics/DebuggerListingPlugin/DebuggerListingPlugin.html#auto_memory">same action</A> in
    the Dynamic Listing window.</P>

    <H3><A name="Byte_Viewer_Options"></A>Byte Viewer Options</H3>

    <P>This action does the same as it does for the static context.</P>

    <H3><A name="Enable_Disable_Byteviewer_Editing"></A>Toggle Editing</H3>

    <P>This action does the same as it does for the static context. Edits may be rejected if the
    trace <A href=
    "help/topics/DebuggerControlPlugin/DebuggerControlPlugin.html#control_mode">control mode</A> is
    set to Read-Only in the tool. <B>NOTE:</B> This toggle also disables automatic navigation in
    order to prevent the cursor from being moved unexpectedly while typing edits.</P>
  </BODY>
</HTML>
